/*
 ***************************************************************************
 * MediaTeK Inc.
 * 4F, No. 2 Technology	5th	Rd.
 * Science-based Industrial	Park
 * Hsin-chu, Taiwan, R.O.C.
 *
 * (c) Copyright 2002-2012, MTK.
 *
 * All rights reserved.	MediaTeK's source	code is	an unpublished work	and	the
 * use of a	copyright notice does not imply	otherwise. This	source code
 * contains	confidential trade secret material of MediaTeK Tech. Any attemp
 * or participation	in deciphering,	decoding, reverse engineering or in	any
 * way altering	the	source code	is stricitly prohibited, unless	the	prior
 * written consent of MediaTeK, Inc. is obtained.
 ***************************************************************************

	Module Name:
	omci_me_layer2_data_services.h

	Abstract:

	Revision History:
	Who			When			What
	--------	----------		----------------------------------------------
	Name		Date			Modification logs
	lisa.xue	2012/7/28	Create
*/

#ifndef _LAYER2_DATA_SERVICES_ME_H_
#define _LAYER2_DATA_SERVICES_ME_H_

#include "omci_adpt_common.h"


int setDot1RateLimiterTPType(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);

#ifdef TCSUPPORT_OMCI_DOT1AG
int setDot1agMaintenanceDomainMDLevel(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setDot1agMaintenanceDomainMDNameFormat(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setDot1agMaintenanceDomainMHFCreation(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setDot1agMaintenanceDomainSenderIDPermission(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);

int setDot1agMaintenanceDomainMANameFormat(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setDot1agMaintenanceAssociationMHFCreation(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setDot1agMaintenanceAssociationSenderIDPermission(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
#endif

int omci_me_mac_br_icmpv6_proc_create_op(management_entry_ptr me_entry, omci_me_info_ptr me_info);
int omci_me_mac_br_icmpv6_proc_delete_op(management_entry_ptr me_entry, omci_me_info_ptr me_info);
int omci_me_mac_br_icmpv6_proc_set_op(management_entry_ptr me_entry, omci_me_info_ptr me_info);
int setMACBridgePortICMPv6ProcessMsg(omci_me_info_ptr me_info);

//int getEthnetFrameExtendedPM64BitFunc(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
//int getEthnetFrameExtendedPM64BitcontrolblockFunc(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);

int omci_me_eth_frame_extend_pm_history_notify(pm_history_data_list_ptr pm_list, omci_me_info_t threshold_info);
int omci_me_eth_frame_extend_64bit_pm_history_notify(pm_history_data_list_ptr pm_list, omci_me_info_t threshold_info);


int get_eth_frame_extend_pm_history_data(pm_history_data_list_ptr pm_list, uint8_t syncFlag);
int get_eth_frame_extend_64bit_pm_history_data(pm_history_data_list_ptr pm_list, uint8_t syncFlag);


//extern 
extern omci_attr_dscp_t omci_attr_dot1_rate_limit_op[];
extern omci_me_func_t omci_me_dot1_rate_limit_op;
extern omci_attr_t omci_dot1_rate_limit_attr;

#ifdef TCSUPPORT_OMCI_DOT1AG
extern omci_attr_dscp_t omci_attr_dot1ag_maint_domain_op[];
extern omci_me_func_t omci_me_dot1ag_maint_domain_op;
extern omci_attr_t omci_dot1ag_maint_domain_attr;

extern omci_attr_dscp_t omci_attr_dot1ag_maint_associat_op[];
extern omci_me_func_t omci_me_dot1ag_maint_associat_op;
extern omci_attr_t omci_dot1ag_maint_associat_attr;
#endif

extern omci_attr_dscp_t omci_attr_eth_frame_ext_pm_op[];
extern omci_me_func_t omci_me_eth_frame_ext_pm_op;
extern omci_attr_t omci_eth_frame_ext_pm_attr;

extern omci_attr_dscp_t omci_attr_mac_br_port_icmpv6_proc_pre_tbl_op[];
extern omci_me_func_t omci_me_mac_br_port_icmpv6_proc_pre_tbl_op;
extern omci_attr_t omci_mac_br_port_icmpv6_proc_pre_tbl_attr;

extern omci_attr_dscp_t omci_attr_eth_frame_ext_pm_64bit_op[];
extern omci_me_func_t omci_me_eth_frame_ext_pm_64bit_op;
extern omci_attr_t omci_eth_frame_ext_pm_64bit_attr;


#endif

